<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>
<script>
    // 群组:
    // 先匹配整个正则表达式,如果有匹配的内容,放到数组中 => 再将()内的子表达式依次匹配放到数组中

    var str = "2022-11-04";

    var reg = /(\d{4})-(\d{1,2})-(\d{1,2})/;
    // var reg = /((\d{4})-(\d{1,2}))-(\d{1,2})/;

    // console.log(reg.test(str));
    // console.log(reg.exec(str));


    // 默认情况下,()内的子表达式依次匹配放到数组中 如果不想将其作为群组匹配 => 怎么办

    // ?:  指定匹配模式后面的字符必须被匹配，但又不返回这些字符
    // (?:pattern) 会作为匹配检验，并出现在匹配字符结果里面，但是跟()的区别是，它不作为子匹配返回；

    var url = "https://www.a.tieba.baidu.com:5050/";
    var reg = /^(http|https):\/\/(?:www\.)?((?:\w{1,63}\.){0,2}\w{2,63}\.(?:com|net|cn|edu|email|xyz|\w+))(:\d{2,4})?\/?$/;

    console.log(reg.exec(url));



</script>

</html>